"""
多继承
    1.Python中是支持单继承和多继承的
    2. 子类可以从多个父类中继承哼属性和行为
    3. 如果多个父类有重名的属性和方法，默认会从左往右的顺序继承，即只会继承左边父类的成员

故事二：
    一个摊煎饼的老师傅，在煎饼果子界摸爬滚打多年，研发了一套精湛的煎饼果子技术
    现在决定要把这套技术传授给骨骼惊奇的煎饼果子奇才聂茹凤，请编写一套程序，

    聂茹凤不满足于现有技术，于是包名到启点教育继续深造，学生更深入的摊煎饼技术

    师傅类  master
        属性: 煎饼果子配方，  recipe
        行为：摊煎饼 practice

    学校：
        属性: 煎饼果子配方 recipe
        行为: 摊煎饼 practice

    徒弟类： prenticev


"""

# 定义师傅类
class Master:
    def __init__(self):
        self.recipe = '老师傅的传统配方'

    def practice(self):
        print('老师傅的传统手艺')

# 定义学校类
class School:
    def __init__(self):
        self.recipe = '启点独门配方'

    def practice(self):
        print('启点独门绝技')

# 定义徒弟类
class Prenticev(Master, School):
    pass

if __name__ == '__main__':
    p = Prenticev()
    print(p.recipe)
    # print(p.recipe2) # 报错，因为子类没有自己的init方法，只能调用第一个父类的init方法，
    p.practice()

    print('='*20)

   # 查看继承的解析顺序  Prenticev  Master  School   object
    print(Prenticev.__mro__)
    print(Prenticev.mro())
